home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / Peter Lewis / Morpion 1.0.0 / source / PNL Libraries / MyDialogs.unit < prev    next >
Encoding:
Text File  |  1993-11-30  |  6.8 KB  |  280 lines  |  [TEXT/PJMM]

  1. unit MyDialogs;
  2.  
  3. interface
  4.  
  5.     procedure SetItemText (dlg: dialogPtr; item: integer; text: str255);
  6.     procedure GetItemText (dlg: dialogPtr; item: integer; var text: str255);
  7.     function GetItemTextF (dlg: dialogPtr; item: integer): str255;
  8.     function ControlEnabled (dlg: dialogPtr; item: integer): boolean;
  9.     procedure OutlineDefault1 (dp: dialogPtr; item: integer);
  10.     procedure SetUpDefaultOutline (dp: dialogPtr; def_item, user_item: integer);
  11.     procedure FlashItem (dlg: dialogPtr; item: integer);
  12.     procedure SetDItemRect (dp: dialogPtr; item: integer; rr: rect);
  13.     procedure GetDItemRect (dp: dialogPtr; item: integer; var rr: rect);
  14.     procedure SetDItemKind (dp: dialogPtr; item: integer; k: integer);
  15.     procedure GetDItemKind (dp: dialogPtr; item: integer; var k: integer);
  16.     function GetDControlHandle (dp: dialogPtr; item: integer): controlHandle;
  17.     function GetDItemHandle (dp: dialogPtr; item: integer): handle;
  18.     procedure SetDItemHandle (dp: dialogPtr; item: integer; h: univ handle);
  19.     procedure SetControlEnable (dp: dialogPtr; item: integer; on: boolean);
  20.     function GetDCtlValue (dp: dialogPtr; item: integer): integer;
  21.     procedure SetDCtlValue (dp: dialogPtr; item: integer; value: integer);
  22.     procedure DrawDItem (dp: dialogPtr; item: integer);
  23.     function GetPopupMHandle (dlg: dialogPtr; item: integer): menuHandle;
  24.     procedure SetPopUpMenuOnMouseDown (dlg: dialogPtr; item: integer; text: str255);
  25.     procedure GetPopUpItemText (dlg: dialogPtr; item: integer; var text: str255);
  26.     procedure GetDAFont (var font: integer);
  27.     procedure SetWindowTitle (window: windowPtr; title: str255);
  28.  
  29. implementation
  30.  
  31. {$S Util}
  32.     procedure SetItemText (dlg: dialogPtr; item: integer; text: str255);
  33.         var
  34.             it: integer;
  35.             ih: handle;
  36.             box: rect;
  37.             oldtext: str255;
  38.     begin
  39.         GetDItem(dlg, item, it, ih, box);
  40.         GetIText(ih, oldtext);
  41.         if oldtext <> text then
  42.             SetIText(ih, text);
  43.     end;
  44.  
  45. {$S Util}
  46.     procedure GetItemText (dlg: dialogPtr; item: integer; var text: str255);
  47.         var
  48.             it: integer;
  49.             ih: handle;
  50.             box: rect;
  51.     begin
  52.         GetDItem(dlg, item, it, ih, box);
  53.         GetIText(ih, text);
  54.     end;
  55.  
  56. {$S Util}
  57.     function GetItemTextF (dlg: dialogPtr; item: integer): str255;
  58.         var
  59.             text: str255;
  60.     begin
  61.         GetItemText(dlg, item, text);
  62.         GetItemTextF := text;
  63.     end;
  64.  
  65. {$S Util}
  66.     function ControlEnabled (dlg: dialogPtr; item: integer): boolean;
  67.         var
  68.             k: integer;
  69.             h: handle;
  70.             r: rect;
  71.     begin
  72.         GetDItem(dlg, item, k, h, r);
  73.         ControlEnabled := controlHandle(h)^^.contrlHilite <> 255;
  74.     end;
  75.  
  76. {$S}
  77.     procedure OutlineDefault1 (dp: dialogPtr; item: integer);
  78.         var
  79.             kind: integer;
  80.             h: handle;
  81.             r: rect;
  82.     begin
  83.         SetPort(dp);
  84.         GetDItem(dp, 1, kind, h, r);
  85.         PenSize(3, 3);
  86.         InsetRect(r, -4, -4);
  87.         if controlHandle(h)^^.contrlHilite = 255 then
  88.             PenPat(gray);
  89.         FrameRoundRect(r, 16, 16);
  90.         if controlHandle(h)^^.contrlHilite = 255 then
  91.             PenPat(black);
  92.         PenNormal;
  93.     end;
  94.  
  95. {$S Util}
  96.     procedure SetUpDefaultOutline (dp: dialogPtr; def_item, user_item: integer);
  97.         var
  98.             kind: integer;
  99.             h: handle;
  100.             r: rect;
  101.     begin
  102.         if def_item <> 1 then
  103.             DebugStr('SetUpDefaultOutline:Cant handle anything except 1 yet');
  104.         GetDItem(dp, user_item, kind, h, r);
  105.         InsetRect(r, -10, -10);
  106.         SetDItem(dp, user_item, userItem, handle(@OutlineDefault1), r);
  107.     end;
  108.  
  109. {$S Util}
  110.     procedure FlashItem (dlg: dialogPtr; item: integer);
  111.         var
  112.             kind: integer;
  113.             h: handle;
  114.             r: rect;
  115.             f: longInt;
  116.     begin
  117.         GetDItem(dlg, item, kind, h, r);
  118.         HiliteControl(controlHandle(h), inButton);
  119.         Delay(2, f);
  120.         HiliteControl(controlHandle(h), 0);
  121.     end;
  122.  
  123. {$S Util}
  124.     procedure SetDItemRect (dp: dialogPtr; item: integer; rr: rect);
  125.         var
  126.             kind: integer;
  127.             h: handle;
  128.             r: rect;
  129.     begin
  130.         GetDItem(dp, item, kind, h, r);
  131.         SetDItem(dp, item, kind, h, rr);
  132.     end;
  133.  
  134. {$S Util}
  135.     procedure GetDItemRect (dp: dialogPtr; item: integer; var rr: rect);
  136.         var
  137.             kind: integer;
  138.             h: handle;
  139.     begin
  140.         GetDItem(dp, item, kind, h, rr);
  141.     end;
  142.  
  143. {$S Util}
  144.     procedure SetDItemKind (dp: dialogPtr; item: integer; k: integer);
  145.         var
  146.             kk: integer;
  147.             h: handle;
  148.             r: rect;
  149.     begin
  150.         GetDItem(dp, item, kk, h, r);
  151.         SetDItem(dp, item, k, h, r);
  152.     end;
  153.  
  154. {$S Util}
  155.     procedure GetDItemKind (dp: dialogPtr; item: integer; var k: integer);
  156.         var
  157.             r: rect;
  158.             h: handle;
  159.     begin
  160.         GetDItem(dp, item, k, h, r);
  161.     end;
  162.  
  163.     function GetDControlHandle (dp: dialogPtr; item: integer): controlHandle;
  164.     begin
  165.         GetDControlHandle := ControlHandle(GetDItemHandle(dp, item));
  166.     end;
  167.  
  168.     function GetDItemhandle (dp: dialogPtr; item: integer): handle;
  169.         var
  170.             kind: integer;
  171.             h: handle;
  172.             r: rect;
  173.     begin
  174.         GetDItem(dp, item, kind, h, r);
  175.         GetDItemhandle := h;
  176.     end;
  177.  
  178.     procedure SetDItemHandle (dp: dialogPtr; item: integer; h: univ handle);
  179.         var
  180.             kind: integer;
  181.             hh: handle;
  182.             r: rect;
  183.     begin
  184.         GetDItem(dp, item, kind, hh, r);
  185.         SetDItem(dp, item, kind, h, r);
  186.     end;
  187.  
  188.     procedure SetControlEnable (dp: dialogPtr; item: integer; on: boolean);
  189.         var
  190.             ch: ControlHandle;
  191.             hilite: integer;
  192.     begin
  193.         ch := GetDControlHandle(dp, item);
  194.         hilite := 255 * ord(not on);
  195.         if ch^^.contrlHilite <> hilite then
  196.             HiliteControl(ch, hilite);
  197.     end;
  198.  
  199.     function GetDCtlValue (dp: dialogPtr; item: integer): integer;
  200.     begin
  201.         GetDCtlValue := GetCtlValue(GetDControlHandle(dp, item));
  202.     end;
  203.  
  204.     procedure SetDCtlValue (dp: dialogPtr; item: integer; value: integer);
  205.     begin
  206.         SetCtlValue(GetDControlHandle(dp, item), value);
  207.     end;
  208.  
  209.     procedure DrawDItem (dp: dialogPtr; item: integer);
  210.     begin
  211.         Draw1Control(GetDControlHandle(dp, item));
  212.     end;
  213.  
  214.     function GetPopupMHandle (dlg: dialogPtr; item: integer): menuHandle;
  215.         type
  216.             MenuHandlePtr = ^MenuHandle;
  217.             MenuHandleHandle = ^MenuHandlePtr;
  218.     begin
  219.         GetPopupMHandle := MenuHandleHandle(ControlHandle(GetDItemHandle(dlg, item))^^.contrlData)^^;
  220.     end;
  221.  
  222.     procedure SetPopUpMenuOnMouseDown (dlg: dialogPtr; item: integer; text: str255);
  223.         var
  224.             mh: MenuHandle;
  225.             i, index, start: integer;
  226.             s: str255;
  227.             added: boolean;
  228.     begin
  229.         mh := GetPopupMHandle(dlg, item);
  230.         if text = '' then begin
  231.             GetItem(mh, 1, text);
  232.         end;
  233.         GetItem(mh, 2, s);
  234.         if s = '-' then begin
  235.             DelMenuItem(mh, 2);
  236.             DelMenuItem(mh, 1);
  237.         end;
  238.         index := 0;
  239.         for i := 1 to CountMItems(mh) do begin
  240.             GetItem(mh, i, s);
  241.             if (IUEqualString(s, text) = 0) then begin
  242.                 index := i;
  243.                 leave;
  244.             end;
  245.         end;
  246.         if index = 0 then begin
  247.             InsMenuItem(mh, '(-;fred', 0);
  248.             SetItem(mh, 1, text);
  249.             index := 1;
  250.         end;
  251.         SetDCtlValue(dlg, item, index);
  252.     end;
  253.  
  254.     procedure GetPopUpItemText (dlg: dialogPtr; item: integer; var text: str255);
  255.         var
  256.             mh: MenuHandle;
  257.     begin
  258.         mh := GetPopupMHandle(dlg, item);
  259.         GetItem(GetPopupMHandle(dlg, item), GetDCtlValue(dlg, item), text);
  260.     end;
  261.  
  262.     procedure GetDAFont (var font: integer);
  263.         type
  264.             intPtr = ^integer;
  265.         const
  266.             DlgFont = $AFA;
  267.     begin
  268.         font := intPtr(DlgFont)^;
  269.     end;
  270.  
  271.     procedure SetWindowTitle (window: windowPtr; title: str255);
  272.         var
  273.             s: str255;
  274.     begin
  275.         GetWTitle(window, s);
  276.         if s <> title then
  277.             SetWTitle(window, title);
  278.     end;
  279.  
  280. end.